home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1983-08-18 | 1.6 KB | 40 lines |
- 1 REM MANTEL-HAENSZEL CHI-SQUARE TEST
- 2 REM Written by Tracy L. Gustafson, M.D.
- 3 REM Round Rock, Texas. Version 2.0, 1983
- 4 DEF SEG=&H40
- 5 A=PEEK(&H17): IF NOT(A AND &H20) THEN POKE &H17,(A AND (NOT &H20)) OR &H20
- 6 DEF SEG: KEY OFF
- 7 CLEAR: DEFINT A,N,T,Z: SCREEN 0,0: WIDTH 80: COLOR 7,0,4
- 10 CLS: PRINT TAB(22);"KEY";STRING$(33,205);"CLOSE"
- 12 PRINT TAB(22);"OPEN MANTEL-HAENSZEL CHI-SQUARE TEST OPEN"
- 15 PRINT TAB(22);"SCREEN";STRING$(33,205);"LOAD": PRINT
- 20 PRINT TAB(17);: INPUT "Enter NAME of factor you wish to TEST: ",FT$
- 30 PRINT TAB(5);:INPUT "Enter NAME of the related factor you wish to CONTROL FOR: ",FC$
- 40 PRINT: PRINT " ";FT$;" must be a dichotomous variable, but ";FC$;" may have > 2 levels."
- 60 PRINT TAB(15);"How many levels does ";FC$;: INPUT " have? ",CL: PRINT
- 70 PRINT: PRINT TAB(32);"CASES";TAB(55);"CONTROLS": PRINT" ";FC$;" LEVEL";
- 80 PRINT TAB(25);"+";FT$;TAB(36);"-";FT$;TAB(50);"+";FT$;TAB(61);"-";FT$
- 90 PRINT STRING$(15,"-");TAB(23);STRING$(46,"-")
- 95 N=0: SA=0: SB=0: SN=0
- 100 FOR Z=1 TO CL: PRINT TAB(5);: INPUT;"",A$: PRINT TAB(27);
- 110 INPUT;"",AA: PRINT TAB(38);: INPUT;"",AB: PRINT TAB(52);
- 120 INPUT;"",AC: PRINT TAB(63);: INPUT "",AD
- 130 N=AA+AB+AC+AD: SA=SA+AA*AD/N: SB=SB+AB*AC/N
- 140 SN=SN+(AA+AB)*(AA+AC)*(AC+AD)*(AB+AD)/(N*N*(N-1))
- 150 NEXT Z: PRINT
- 160 X=ABS(SA-SB)-0.5: X=X*X/SN: DF=CL-1
- 170 PRINT TAB(3);: COLOR 0,7: PRINT TAB(13);"CHI-SQUARE = ";X;
- 180 IF X>31 AND DF<3 THEN P=0: GOTO 295
- 220 J=DF/2-1: R=1
- 240 FOR B=1 TO (DF/2-0.5): R=R*J: J=J-1: NEXT
- 245 IF DF MOD 2<>0 THEN R=R*1.77245
- 250 S=1: I=1: D=DF+2: K=((X/2)^(DF/2))*2/(EXP(X/2)*R*DF)
- 270 I=I*X/D: S=S+I: D=D+2: IF I>0 THEN 270
- 290 P=1-K*S
- 295 PLAY "O2 MB MS T120 L16 D-P8A-P8 L3 D-"
- 300 PRINT TAB(50);"p = ";:IF P<9E-09 THEN PRINT "< 10 (-8)"; ELSE PRINT P;
- 320 PRINT TAB(78): COLOR 7,0: PRINT: PRINT: PRINT: PRINT TAB(9);
- 330 INPUT "Do you want to calculate another Chi-square? (Y or N) ",A$
- 340 IF A$="y" OR A$="Y" THEN CLS: GOTO 10
- 350 END
-